package com.abewy.android.apps.klyph.core.fql.serializer;
import org.json.JSONObject;
import com.abewy.android.apps.klyph.core.fql.Media;
import com.abewy.android.apps.klyph.core.fql.Video;
import com.abewy.android.apps.klyph.core.fql.Media.Image;
import com.abewy.android.apps.klyph.core.fql.Media.Photo;
import com.abewy.android.apps.klyph.core.fql.Media.Swf;
import com.abewy.android.apps.klyph.core.graph.GraphObject;
public class MediaDeserializer extends Deserializer
{
@Override
public GraphObject deserializeObject(JSONObject data)
{
Media media = new Media();
deserializePrimitives(media, data);
media.setPhoto((Photo) new PhotoDeserializer().deserializeObject(getJsonObject(data, "photo")));
media.setVideo((Video) new VideoDeserializer().deserializeObject(getJsonObject(data, "video")));
media.setSwf((Swf) new SwfDeserializer().deserializeObject(getJsonObject(data, "swf")));
return media;
}
private static class PhotoDeserializer extends Deserializer
{
@Override
public GraphObject deserializeObject(JSONObject data)
{
Photo photo = new Photo();
if (data != null)
{
deserializePrimitives(photo, data);
photo.setImages(new ImageDeserializer().deserializeArray(getJsonArray(data, "images"), Image.class));
}
return photo;
}
private static class ImageDeserializer extends Deserializer
{
@Override
public GraphObject deserializeObject(JSONObject data)
{
Image image = new Image();
if (data != null)
{
deserializePrimitives(image, data);
}
return image;
}
}
}
private static class SwfDeserializer extends Deserializer
{
@Override
public GraphObject deserializeObject(JSONObject data)
{
Swf swf = new Swf();
if (data != null)
{
deserializePrimitives(swf, data);
}
return swf;
}
}
}